package com.czy.lambda.test2;

import org.junit.Test;

import java.util.Arrays;
import java.util.Comparator;

/**
 * @Author: czy
 * @Date: 2019/7/3 14:28
 */
public class Demo06Comparator {
    public static void main(String[] args) {
        // 本来年龄乱序的对象数组  
        Person[] arr={
                new Person("古力娜扎",19),
                new Person("迪丽热巴",18),
                new Person("马尔扎哈",20)
        };

        //匿名内部类
        Comparator comparator=new Comparator<Person>() {
            /**
             * 前面减后面升序
             * 后面减前面降序
             * @param o1
             * @param o2
             * @return
             */
            @Override
            public int compare(Person o1, Person o2) {
                return o1.getAge()-o2.getAge();
            }
        };

        /**
         * 第一个参数为要排序的数组
         * 第二个参数为排序的规则
         */
        Arrays.sort(arr,comparator);


        //================================以上为传统方式,下面为lambda表达式方式
        Arrays.sort(arr,(Person o1,Person o2)->{
            return o1.getAge()-o2.getAge();
        });

        for (Person person : arr) {
            System.out.println(person);
        }
    }

    @Test
    public void test(){
        new Thread(()->{
            System.out.println("线程执行了");
        }).start();
    }
}
